# 导入所需的模块
import requests  # 用于发送 HTTP 请求
import json  # 用于处理 JSON 数据
import urllib3  # 用于处理 HTTP 相关的警告

# 禁用 SSL 警告（在使用不安全的 HTTPS 连接时，避免控制台出现警告信息）
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# 替换为实际的 API 地址和认证信息
API_URL = "https://cnds.accounts.intern/v1/chat-messages"  # API 的 URL 地址
API_KEY = "app-vAC1Zc3QOkFpuBw1Uw3Bd7q5"  # API 的认证密钥
APP_ID = "37718c73-09ad-410f-b23d-0a5915394e8c"  # 应用的 ID
USER_ID = "your_user_id_here"  # 用户的 ID

# 设置请求头，包含认证信息和内容类型
headers = {
    "Authorization": f"Bearer {API_KEY}",  # 使用 Bearer 认证方式
    "Content-Type": "application/json"  # 指定发送的内容类型为 JSON
}

# 定义请求的提示内容
prompt = '你好呀,你知道xx中国吗'

# 构造请求的负载（payload），包含模型参数和用户查询
payload = {
    "inputs": {},  # 输入内容（此处为空）
    "model": "deepseek-r1:70b",  # 使用的模型名称
    "stream": True,  # 是否启用流式响应
    "max_tokens": 768,  # 最大生成的 token 数量
    "temperature": 0.3,  # 温度参数，控制生成的随机性
    "top_p": 0.7,  # 核心采样概率
    "top_k": 50,  # 核心采样数量
    "frequency_penalty": 0.5,  # 频率惩罚
    "n": 1,  # 生成的响应数量
    "response_format": {"type": "text"},  # 响应格式为文本
    "response_mode": "streaming",  # 响应模式为流式
    "num_thread": 4,  # 线程数量
    "app_id": APP_ID,  # 应用 ID
    "user": USER_ID,  # 用户 ID
    "query": prompt,  # 用户的查询内容
}

# 发送 POST 请求
# 使用 requests.post 方法发送 POST 请求，指定 URL、负载、请求头、启用流式响应、关闭 SSL 验证、设置超时
response = requests.post(API_URL, json=payload, headers=headers, stream=True, verify=False, timeout=1000)

# 遍历响应的流式数据
for line in response.iter_lines():
    # 解码每一行数据
    decoded_line = line.decode("utf-8")
    # 检查是否是有效的数据行（以 "data: " 开头）
    if decoded_line.startswith("data: "):
        # 提取 JSON 数据并解析
        data = json.loads(decoded_line[6:])
        # 如果数据中包含 "answer" 键，则打印回答内容
        if 'answer' in data.keys():
            print(data['answer'], end='')  # 打印回答内容，不换行
